package net.aiion.weave;

import net.aiion.weave.spi.injection.InjectionContext;
import net.aiion.weave.spi.injection.annotations.Inject;
import net.aiion.weave.spi.injection.annotations.Injects;

public class InjectingClass /*implements Injector*/
{
    public InjectingClass() {
    }

    @Injects(Inject.class)
    public Object createObject(InjectionContext aInjectionContext) {
        return null;
    }

    @Injects(Inject.class)
    public Object createObject2(InjectionContext aInjectionContext) {
        return null;
    }

    @Injects(Deprecated.class)
    public Object createObject3(InjectionContext aInjectionContext) {
        return null;
    }

    // @Override
    // public Object injectValue(InjectionContext aInjectionContext) {
    // Class<?> targetType = aInjectionContext.getTargetType();
    // Object targetValue;
    // if (aInjectionContext.hasTargetAnnotation(Inject.class)) {
    // targetValue = createObject(aInjectionContext);
    // if (targetType.isInstance(targetValue)) {
    // return targetValue;
    // }
    //
    // targetValue = createObject2(aInjectionContext);
    // if (targetType.isInstance(targetValue)) {
    // return targetValue;
    // }
    // }
    //
    // if (aInjectionContext.hasTargetAnnotation(Deprecated.class)) {
    // targetValue = createObject3(aInjectionContext);
    // if (targetType.isInstance(targetValue)) {
    // return targetValue;
    // }
    // }
    //
    // return aInjectionContext.forwardInjection();
    // }
}
